The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventor(s), to the extent the work is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
In computer graphics, image scaling is the process of resizing a pixelated digital image. Scaling up involves adding additional pixels between the existing pixels to enlarge the image. However, two adjacent existing pixels may have different characteristics. The characteristics of the additional pixels should gradually vary to make the transition between existing pixels appear continuous.
Scaling up an image using bilinear interpolation provides a smooth transition in the image. However, bilinear interpolation makes edges look blurry. Moreover, to enlarge the digital image bilinear interpolation generates a curve that does not have a continuous derivative, meaning the scaling has abrupt changes in slope. The abrupt changes in slope cause the digital image to appear disjointed.
Scaling up using bicubic interpolation has sharper transitions so there is less blurring in a digital image than with bilinear interpolation. Bicubic interpolation generates a curve with a continuous derivative, but causes ‘sharpening-like’ overshoot and undershoot along the edges of transitions in the digital image. Overshoot and undershoot cause interpolated pixel color intensity to exceed the color intensity of the existing pixels. Thus, overshoot and undershoot may make portions of the digital image appear arbitrarily brighter or darker.